package com.dxf.chepter01

/**
 * scala和java有着相同的数据类型,
 * 在scala中数据类型都是对象
 * scala中没有java的原生类型
 *
 *
 * Scala数据类型分两大类 AnyValue(值类型) 和AnyRel(引用类型)  --> AnyValue 和  AnyRel 都是对象
 *
 * Any
 * AnyVal                                                                                                 AnyRef
 * Double               Unit                                                              Scala Collections              |             OtherScall Classes
 * Float                                                                                                            all java classes
 * Long                                                                                                                 |
 * Int                                                                                                                  |
 * Short                                                                                                                |
 * Byte                                                                                                 Null
 *
 * Nothing
 *
 *
 *
 *
 * Null  和 Nothing   -> 底层类
 *
 * 1 在Scala中的Any类 类似java中的Object
 * 2 Scala 一切皆为对象,分为两大类型 AnyVal和AnyRel 都是Any子类
 * 3 Null类  底层类,只有一个值 null
 * 4 Nothing 底层类,抛出异常
 *
 *
 *
 * ##########################################################################
 * ##########################################################################
 * Unit       -----------------> void
 * Null       ------->null
 * Any        -------> Object
 *
 *
 * ===============================================
 *
 *
 * Char 字符
 * 1 单引号 'a'
 * 2 可以给数字  码值表 unicode
 * 3 char 可以当做整数运算
 *
 *
 * ==============================================
 *
 * Boolean 布尔类型
 *  只允许 true 和 false
 *
 *
 * ================================================
 *
 *
 *
 *
 *
 */
object T07_Scala数据类型 {
  var a: Int = 1 //定义一个整形变量,取名 a 并复制初值 1
  var b: Int = 2 //定义整形变量 b,初值3


  def main(args: Array[String]): Unit = {

    //Int是一个类,因为他是一个实例,所以可以使用很多方法
    //var num1: Int = 10
    // println(num1.toDouble + num1.toString)
    //scala 调用方法可以括号不写
    //    sayHi
    //    sayHi()
    // sayHello
    // println(sayHello)


   // charAdd()


  }

  def sayHi(): Unit = {

    println("say Hi")

  }

  //Nothing 做返回值,就是明确说明该方法没有正常的返回值
  def sayHello: Nothing = {
    throw new Exception("异常")
  }

  def charAdd(): Unit = {

    var a2: Char = 'a' + 1
    var a3: Char = 97 + 1

    var a4: Char = 98

    var a5:Char =999
    //正确吗   'a'+1 --> Int --> Char
    //Int --> Char  必错.高精度转低精度
    println(a2)
    println(a3)
    println(a5)
  }


}

